import axios from "axios";

//使用环境变量的 基本地址
const baseURL = process.env.VUE_APP_API_BASE_URL
//创建axios实例
const service = axios.create({
    baseURL,        //基本地址
    timeout:10000,  //超时时间
})

//请求截器,开始请求时候
service.interceptors.request.use(config=>{
    window.localStorage.setItem('userInfo',JSON.stringify({token:123}));
    console.log(window.localStorage);
    const token = JSON.parse(window.localStorage.getItem('userInfo')).token;
    if(token){
        //让每个请求携带自定义token,判断什么的自己加限制
        config.headers['X-Access-Token'] = token;   
    }

    //在这里可以加其他内容config就是配置的
    return config;
},(error)=>{
    return Promise.reject(error);
})

//响应拦截,响应前
service.interceptors.response.use((response)=>{
    return response.data;       //这个直接返回全部数据.data方便后面请求处理,也可以直接return response
},errMethod)

const errMethod = (error) => {
    if(error.response){
        //根据响应的值 给提示也好跳转响应页面也好
        switch (error.response.status){
            case 403:
                //403干什么
            break;

        }
    }else{
        //响应失败提示点什么
    }
    return Promise.reject(error);
}

//换个名字导出,吧service 以axios名字导出
export {
    service as axios
}